home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2004 April / Gamestar_61_2004-04_dvdb.iso / DVDStar / Editace / hltp.exe / {app} / Applications / QuArK / quarkpy / qconsole.py < prev    next >
Text File  |  2004-01-05  |  2KB  |  86 lines

  1. """   QuArK  -  Quake Army Knife
  2.  
  3. Console code
  4. """
  5. #
  6. # Copyright (C) 1996-99 Armin Rigo
  7. # THIS FILE IS PROTECTED BY THE GNU GENERAL PUBLIC LICENCE
  8. # FOUND IN FILE "COPYING.TXT"
  9. #
  10.  
  11. #$Header: /cvsroot/quark/runtime/quarkpy/qconsole.py,v 1.2 2000/06/02 16:00:22 alexander Exp $
  12.  
  13.  
  14. #
  15. # This module defines the class 'console',
  16. # which can be subclassed to analyse the output of
  17. # other programs run by quarkx.runprogram.
  18. #
  19. # Important : DO NOT MODIFY this module, make
  20. # subclassing elsewhere. If you make a syntax error
  21. # here, QuArK will not be able to display it at all.
  22. #
  23. # All you can safely change are the default colors
  24. # for the console, below. These colors are copied
  25. # here from qutils.py because we don't want to
  26. # import qutils from here; we must import as little
  27. # as possible.
  28. #
  29.  
  30.  
  31. import quarkx
  32. import sys
  33.  
  34.  
  35. SILVER    = 0xC0C0C0
  36. RED       = 0x0000FF
  37. WHITE     = 0xFFFFFF
  38.  
  39.  
  40. class console:
  41.     "A link to QuArK's console."
  42.  
  43.     def __init__(self, color=WHITE):
  44.         self.color = color     # the color could be changed later if you call write("") immediately after to refresh the display
  45.  
  46.     def write(self, str):
  47.         quarkx.writeconsole(self, str)   # this method can be overridden
  48.  
  49.     def close(self):
  50.         pass       # called when the process terminates. This can also be overridden
  51.  
  52.  
  53. sys.stdout = console()
  54. sys.stderr = console(RED)
  55.  
  56.  
  57. firstwarning = 7
  58.  
  59. def runprogram(cmdline, currentdir, stdout=0, stderr=None):
  60.     "Runs a program in the QuArK console with default colors."
  61.     if stdout!=0:
  62.         global firstwarning
  63.         if firstwarning:
  64.             import qdictionnary
  65.             sys.stderr.write(qdictionnary.Strings[firstwarning])
  66.             firstwarning = None
  67.     print currentdir+">", cmdline
  68.     try:
  69.         if stdout==0:
  70.             return quarkx.runprogram(cmdline, currentdir)
  71.         else:
  72.             return quarkx.runprogram(cmdline, currentdir, stdout or console(SILVER), stderr or console(RED))
  73.     except:
  74.         print "Could not execute this program."
  75.         quarkx.msgbox("Cannot execute this program :\n\n    %s\n\nCheck the path and required DLLs." % cmdline, 1, 4)
  76.         raise quarkx.aborted
  77.  
  78. # ----------- REVISION HISTORY ------------
  79. #
  80. #
  81. #$Log: qconsole.py,v $
  82. #Revision 1.2  2000/06/02 16:00:22  alexander
  83. #added cvs headers
  84. #
  85. #
  86. #